{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- 模型越复杂数据越单调就越可能会出现过拟合的情况，反之是欠拟合"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 我们来研究一下过拟合欠拟合和模型选择\n",
    "%matplotlib inline\n",
    "import torch\n",
    "import numpy\n",
    "import matplotlib.pyplot as plt\n",
    "import math\n",
    "import torch.nn as nn\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "vscode": {
     "languageId": "latex"
    }
   },
   "source": [
    "$$ y = 5 + 1.2x - 3.4\\frac{x^2}{2!} + 5.6 \\frac{x^3}{3!} + \\epsilon \\text{ where }\n",
    "\\epsilon \\sim \\mathcal{N}(0, 0.1^2)$$  \n",
    "拟合这个多项式"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1.00000000e+00,  1.55254518e+00,  1.20519827e+00, ...,\n",
       "         4.97374693e-12,  4.28998157e-13,  3.50546853e-14],\n",
       "       [ 1.00000000e+00,  1.07533952e+00,  5.78177544e-01, ...,\n",
       "         9.66511040e-15,  5.77404178e-16,  3.26792386e-17],\n",
       "       [ 1.00000000e+00, -8.75441090e-01,  3.83198551e-01, ...,\n",
       "        -2.92947125e-16,  1.42476639e-17, -6.56473180e-19],\n",
       "       ...,\n",
       "       [ 1.00000000e+00, -1.62308359e+00,  1.31720016e+00, ...,\n",
       "        -1.05858696e-11,  9.54541731e-13, -8.15421587e-14],\n",
       "       [ 1.00000000e+00, -7.50269975e-02,  2.81452518e-03, ...,\n",
       "        -2.12632732e-34,  8.86288636e-37, -3.49976712e-39],\n",
       "       [ 1.00000000e+00,  1.16226397e+00,  6.75428767e-01, ...,\n",
       "         3.62336975e-14,  2.33961784e-15,  1.43118606e-16]])"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 先生成100组训练数据和和测试数据\n",
    "torch.set_default_dtype(torch.float32)\n",
    "n_train, n_test = 100, 100\n",
    "ture_w = numpy.zeros(shape=(20,1))\n",
    "ture_w[:4] = numpy.array([5, 1.2, -3.4, 5.6]).reshape((4,1)) # 列向量权重\n",
    "features = numpy.random.normal(size=(n_test+n_train,1))  # 200个x生成\n",
    "poly_features =  numpy.power(features, numpy.arange(20))# (200, 20)  指数运算，对每一列分别做0，1，2，3的指数运算\n",
    "for i in range(20):\n",
    "    poly_features[:,i] /= math.gamma(i+1) # gamma(n) = (n-1)!     每一列除以阶乘\n",
    "labels = poly_features @ ture_w # @是矩阵乘法(200, 1)\n",
    "labels += numpy.random.normal(0,0.5, size=labels.shape)\n",
    "poly_features"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(tensor([[ 5.0000],\n",
       "         [ 1.2000],\n",
       "         [-3.4000],\n",
       "         [ 5.6000],\n",
       "         [ 0.0000],\n",
       "         [ 0.0000],\n",
       "         [ 0.0000],\n",
       "         [ 0.0000],\n",
       "         [ 0.0000],\n",
       "         [ 0.0000],\n",
       "         [ 0.0000],\n",
       "         [ 0.0000],\n",
       "         [ 0.0000],\n",
       "         [ 0.0000],\n",
       "         [ 0.0000],\n",
       "         [ 0.0000],\n",
       "         [ 0.0000],\n",
       "         [ 0.0000],\n",
       "         [ 0.0000],\n",
       "         [ 0.0000]]),\n",
       " tensor([[ 1.0000e+00,  1.5525e+00,  1.2052e+00,  ...,  4.9737e-12,\n",
       "           4.2900e-13,  3.5055e-14],\n",
       "         [ 1.0000e+00,  1.0753e+00,  5.7818e-01,  ...,  9.6651e-15,\n",
       "           5.7740e-16,  3.2679e-17],\n",
       "         [ 1.0000e+00, -8.7544e-01,  3.8320e-01,  ..., -2.9295e-16,\n",
       "           1.4248e-17, -6.5647e-19],\n",
       "         ...,\n",
       "         [ 1.0000e+00, -1.6231e+00,  1.3172e+00,  ..., -1.0586e-11,\n",
       "           9.5454e-13, -8.1542e-14],\n",
       "         [ 1.0000e+00, -7.5027e-02,  2.8145e-03,  ..., -2.1263e-34,\n",
       "           8.8629e-37, -3.4998e-39],\n",
       "         [ 1.0000e+00,  1.1623e+00,  6.7543e-01,  ...,  3.6234e-14,\n",
       "           2.3396e-15,  1.4312e-16]]))"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 转成张量的形式\n",
    "ture_w, features, poly_features, labels = [torch.tensor(x, dtype=torch.float32) for x in [ture_w, features, poly_features, labels]]\n",
    "ture_w,poly_features"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((tensor([1.0000, 1.0753, 0.5782, 0.2072]), tensor([5.1512])),\n",
       " (tensor([1.0000e+00, 1.0753e+00, 5.7818e-01, 2.0725e-01, 5.5715e-02, 1.1982e-02,\n",
       "          2.1475e-03, 3.2990e-04, 4.4345e-05, 5.2984e-06, 5.6976e-07, 5.5699e-08,\n",
       "          4.9913e-09, 4.1287e-10, 3.1712e-11, 2.2734e-12, 1.5280e-13, 9.6651e-15,\n",
       "          5.7740e-16, 3.2679e-17]),\n",
       "  tensor([5.1512])),\n",
       " (tensor([1.0000, 1.0753]), tensor([5.1512])))"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import torch.utils\n",
    "import torch.utils.data\n",
    "data_normal = [(0,0)]*len(poly_features)\n",
    "data_over = [(0,0)]*len(poly_features)\n",
    "data_under = [(0,0)]*len(poly_features)\n",
    "for i in range(len(poly_features)):\n",
    "    data_normal[i] = (poly_features[i][:4],labels[i])\n",
    "    data_over[i] = (poly_features[i],labels[i])\n",
    "    data_under[i] = (poly_features[i][:2],labels[i])\n",
    "    \n",
    "# data = [(x,y) for x in poly_features for y in labels]\n",
    "data_train_normal = data_normal[:100]\n",
    "data_test_normal = data_normal[100:]\n",
    "data_train_over = data_over[:100]\n",
    "data_test_over = data_over[100:]\n",
    "data_train_under = data_under[:100]\n",
    "data_test_under = data_under[100:]\n",
    "data_normal[1],data_train_over[1],data_train_under[1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "input_n = 4\n",
    "epochs = 200\n",
    "batch_size = min(10,100)\n",
    "net = nn.Sequential(nn.Linear(input_n, 1, bias=False))\n",
    "\n",
    "loss = nn.MSELoss()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "from Show import show\n",
    "myshow = show([\"loss_train\", \"loss_test\"],\"epochs\",\"loss\",ylim=[0,0.1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "import IPython.display\n",
    "def train(data_train, data_test, epochs,net,show):\n",
    "    optim = torch.optim.SGD(net.parameters(), lr=0.01)\n",
    "    train_iter = torch.utils.data.DataLoader(data_train,10,shuffle=False)\n",
    "    test_iter = torch.utils.data.DataLoader(data_test,10,shuffle=False)\n",
    "    plt.ion()\n",
    "    for epoch in range(epochs):\n",
    "        for x, y in train_iter:\n",
    "            y_hat = net(x)\n",
    "            # print(y_hat)\n",
    "            l = loss(y_hat, y)\n",
    "            # print(l)\n",
    "            optim.zero_grad()\n",
    "            l.backward()\n",
    "            optim.step()\n",
    "        with torch.no_grad():\n",
    "            show.add([myshow.eval_loss(loss, net,train_iter),\n",
    "                    myshow.eval_loss(loss, net, test_iter,)])\n",
    "            show.show_train()\n",
    "            IPython.display.clear_output(wait=True)\n",
    "            # plt.pause(0.1)\n",
    "        # break\n",
    "    plt.close()\n",
    "    show.show_train()\n",
    "    show.clear()\n",
    "    print(net[0].weight.data.numpy())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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AFsICQ8PZ+HChfTt25e0tDQeeOABmjVrBlyaaQHbus5WrVrRtm1bgCLPulSvXh2AatWqERoa6iifMGECU6ZM4f777wds/3Zs376d999/n4EDB5KWlkZUVBSdOnXCZDI5lldcvs+goCCnfbqaToGJkyLNAO3fb/u/JxERcYmUlBS8vLxo3769o6xatWo0bNiQlJQUAEaNGsVrr71Gx44dmTBhAlu2bHG0feqpp5g7dy4tW7bkueeeY926dcXuy7lz5/jtt98YMmSI09PjX3vtNX777TfANluVnJxMw4YNGTVqFEuXLi3295UWBSBxYg9Ahw8f5sKFC86VtWrZpm4vXNDNEEWkfAsIsM3GXLZZMzI4feAA1oyMAnUltgUElNohDR06lN9//53HH3+crVu30rZtW959910Aevbsyb59+3jmmWc4dOgQd911F88++2yxviczMxOAWbNmkZyc7Ni2bdvGTz/9BEDr1q1JTU1l4sSJnD9/noceeogHH3ywZA60hCgAiZNq1ao5zhkXuBTe1xfs05VaByQi5ZnJZDsV5eqtmOt/oqOjycvLY8OGDY6yEydOsHPnTho3buwoCw8PZ/jw4Xz11VeMGTOGWbNmOeqqV6/OwIED+fTTT5k6dSoffPDBH36vfc1Pfn6+oywkJISwsDB+//136tev77TZl1EABAYG0q9fP2bNmsW8efP48ssvOXnyJADe3t5O+3QHrQESJ/YV+du2bSM1NZUGDRo4NwgPh8OHbQGoTRv3dFJExMNERUVx3333MWzYMN5//30qVarECy+8QK1atbjvvvsAePrpp+nZsycNGjTg1KlTrFy5kujoaADGjx9PmzZtaNKkCdnZ2Xz77beOumupUaMG/v7+LFmyhNq1a+Pn50flypV59dVXGTVqFJUrV6ZHjx5kZ2ezadMmTp06RVxcHG+//TY1a9akVatWmM1mvvjiC0JDQwkKCgJsj15asWIFt99+O76+vlSpUqXUxu5qNAMkBWghtIhI2TN79mzatGnD3XffTUxMDIZhEB8fj7e3N2CbpRkxYgTR0dH06NGDBg0aOC5N9/HxYdy4cTRv3pw77rgDi8XC3Llz//A7vby8mDZtGu+//z5hYWGOsDV06FA+/PBDZs+eTbNmzejcuTNz5sxx/PtRqVIl3nzzTdq2bUu7du3Yu3cv8fHxmC9eXTdx4kSW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iMjNTQFI3MZsNtOvXz8A5s2bZyvs3h0CA+HgQT0cVURESo0CkLiVPQB9/fXXnDt3Dnx94c9/tlXa1waJiIiUMAUgcat27dpRr149srKy+Nq+7udiKOKLLyAvz32dExGRm1axAtC///1vFi9e7Hj/3HPPERQURIcOHdi3b1+JdU5ufiaTiccffxyw/V4B0LUrVK0KR4+C/U7RIiIiJahYAej111/H398fgPXr1zNjxgzefPNNgoODeeaZZ0q0g3LzGzBgAAAJCQkcOHAAvL3hgQdslfa1QSIiIiWoWAFo//791K9fH7A90fuBBx7gySefZNKkSfz4448l2kG5+dWrV4/bb78dwzD49NNPbYUXL5Hnyy91U0QRESlxxQpAFStW5MSJEwAsXbqUbt26AeDn58f58+dLrnfiMZ544gkA5syZg2EY0LkzhITAyZOQkODezomIyE2nWAGoW7duDB06lKFDh7Jr1y569eoFwK+//kpERERJ9k88xIMPPoi/vz87d+5k48aNtpsi9u1rq/zsM/d2TkREbjrFCkAzZswgJiaGY8eO8eWXX1KtWjUAEhMT6d+/f4l2UDxDYGAg999/P3DZYuiLa4P46ivb4zFERERKSLECUFBQENOnT+frr7+mR48ejvJXX32Vv/71ryXWOfEsAwcOBODzzz8nKysL2raFJk3gwgUthhYRkRJVrAC0ZMkS1qxZ43g/Y8YMWrZsySOPPMKpU6dKrHPiWe666y4iIiI4c+YM//vf/8Bkgotrg5gzx51dExGRm0yxAtDYsWPJyMgAYOvWrYwZM4ZevXqRmppKXFxciXZQPIfZbObJJ58EYObMmbbCxx6zrQf66SdISXFj70RE5GZSrACUmppK48aNAfjyyy+5++67ef3115kxYwbfffddiXZQPMvgwYPx8vJiw4YNJCcnQ2goXFxkr1kgEREpKcUKQD4+PrY1GsCyZcvo3r07AFWrVnXMDIkUR0hIiGMx9Pvvv28rtJ8G++QTPRpDRERKRLECUKdOnYiLi2PixIls3LiR3r17A7Br1y5q165doh0Uz/N///d/AHz66aecPXsW7r4bgoPh8GGIj3dz70RE5GZQrAA0ffp0vLy8mD9/Pv/617+oVasWAN99953TVWEixXHnnXfSoEEDMjMz+fzzz8HH59Is0HvvubVvIiJycyhWAKpTpw7ffvstv/zyC0OGDHGU//Of/2TatGkl1jnxTCaTyTEL9O6779ruDD18uO2qsO+/hz173NxDEREp74oVgADy8/P58ssvee2113jttddYsGAB+fn5Jdk38WCDBw+mQoUK/PrrryxbtgxuuQXss4v2K8RERESKqVgBaM+ePURHRzNgwAC++uorvvrqKx577DGaNGnCb7/9VtJ9FA8UFBTE4MGDAZg6daqtcMQI28+PP4aLi/BFRESKo1gBaNSoUdxyyy3s37+fpKQkkpKSSEtLIzIyklGjRpV0H8VDjRo1CpPJRHx8PDt27LDNAEVEwKlTujO0iIjckGIFoNWrV/Pmm29StWpVR1m1atWYPHkyq1evLrHOiWerX78+99xzDwDvvPOO7YaIw4fbKqdPB8NwY+9ERKQ8K1YA8vX1tV2efIXMzEx8fHxuuFMids888wxge0DqiRMnYMgQ8PODpCT44Qc3905ERMqrYgWgu+++myeffJINGzZgGAaGYfDTTz8xfPhw7r333pLuo3iwzp0706pVK86fP897771nux+Q/ZL4f/zDrX0TEZHyq1gBaNq0adxyyy3ExMTg5+eHn58fHTp0oH79+pcWrIqUAJPJxPPPPw/YFkNnZmZCXJztkvjFi2H7djf3UEREyqNiBaCgoCC+/vprdu3axfz585k/fz67du1iwYIFBAUFlXAXxdM9+OCD1K9fn5MnT9oejxEVBX/+s63yrbfc2zkRESmXvIra8I+e8r5y5UrH67fffrv4PRK5gsVi4YUXXmDo0KFMmTKFESNG4Dd2LHz1FXz6Kbz2GoSFububIiJSjhQ5AG3evLlI7UwmU7E7I3I1jz/+OK+88goHDhxgzpw5DB8+HDp2hLVr4Z134I033N1FEREpR4ocgC6f4RFxNR8fH8aOHcvo0aN54403GDJkCN7PPw/33gszZsDYsbYF0iIiIkVQ7EdhiLja0KFDqVGjBnv37mX27Nm2p8S3bg3nzsGUKe7unoiIlCMKQFJuBAQE8OKLLwIwceJELmRnwyuv2CrffReOHXNf50REpFxRAJJy5f/+7/+oXbs2Bw4cYObMmZoFEhGRYlEAknLFz8+P8ePHA/D666+Tee7cpVmg6dM1CyQiIkWiACTlzhNPPMEtt9zCsWPHbM8Iu/tuaNvWNgv097+7u3siIlIOKABJuePt7c3f/vY3AN544w2OHjsGr79uq3zvPfjtNzf2TkREygMFICmXHn74Ydq0acPZs2dtp8S6dYPYWMjNxfLyy+7unoiIlHEKQFIumc1m/vnPfwIwa9Ystm7dCm++CSYT5vnzqbJrl5t7KCIiZZkCkJRbt99+Ow888ABWq5UxY8ZgNGvmeFJ8k9mzwTDc20ERESmzFICkXHvjjTfw8fEhISGBxYsXw8SJGP7+VEtJwTRvnru7JyIiZZQCkJRrt9xyC6NHjwZg1KhRnK9aFevzzwNgef55yMhwZ/dERKSMUgCScu/ll1+mVq1apKam8vrrr2MdM4bMmjUxHT4Mr77q7u6JiEgZpAAk5V6lSpVs9wPCdkps5969bB02zFb5zjuwbZsbeyciImWRApDcFO6//3569uxJbm4uo0aN4kirVlj79IH8fBg+HKxWd3dRRETKEAUguSmYTCamT5+On58fK1euZMWKFeS/9RZUrAhr18KMGe7uooiIlCEKQHLTqFevHq9eXPPz0UcfccBstt0bCOCFF+D3393YOxERKUsUgOSmEhcXR7t27cjKymLEiBEYTz4JXbpAVhYMHapTYSIiApSRADRjxgwiIiLw8/Ojffv2bNy48Zrtv/jiCxo1aoSfnx/NmjUjPj7+qm2HDx+OyWRi6tSpJdxrKYu8vLz48MMP8fb25rvvvuPfn3wCH34IAQGwciX861/u7qKIiJQBbg9A8+bNIy4ujgkTJpCUlESLFi2IjY3l6NGjhbZft24d/fv3Z8iQIWzevJk+ffrQp08fthVypc+CBQv46aefCAsLK+3DkDIkOjqa/v37AzB69GhSzWaYPNlW+eyzuipMRETcH4Defvtthg0bxqBBg2jcuDEzZ84kICCAjz/+uND277zzDj169GDs2LFER0czceJEWrduzfTp053aHTx4kL/85S989tlneHt7u+JQpAy577776NChAxkZGTz66KPkDR8OPXvChQvQvz+cP+/uLoqIiBt5ufPLc3JySExMZNy4cY4ys9lM165dWb9+faGfWb9+PXFxcU5lsbGxLFy40PHearXy+OOPM3bsWJo0afKH/cjOziY7O9vxPuPi3YNzc3PJzc29nkO6Jvu+SnKfUlBubi4Wi4WPPvqI2267jfXr1zN+wgRe/eADvNq0wbRtG/nPPotVp0VviH6fXUdj7RoaZ9cozXG+nn26NQAdP36c/Px8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pKenF9o+PT290PYXLlzg+eefp3///gQGBhbaZtKkSbz66qsFypcuXUpAQEBRDuW6JCQklPg+pSCNs2tonF1HY+0aGmfXKI1xzsrKKnJbtwag0pabm8tDDz2EYRj861//umq7cePGOc0qZWRkEB4eTvfu3a8amorbn4SEBLp164a3t3eJ7VecaZxdQ+PsOhpr19A4u0ZpjrP9DE5RuDUABQcHY7FYOHLkiFP5kSNHCA0NLfQzoaGhRWpvDz/79u1jxYoV1wwyvr6++Pr6Fij39vYulb8EpbVfcaZxdg2Ns+torF1D4+wapTHO17M/ty6C9vHxoU2bNixfvtxRZrVaWb58OTExMYV+JiYmxqk92KbRLm9vDz+7d+9m2bJlVKtWrXQOQERERMolt58Ci4uLY+DAgbRt25Zbb72VqVOncu7cOQYNGgTAgAEDqFWrFpMmTQJg9OjRdO7cmSlTptC7d2/mzp3Lpk2b+OCDDwBb+HnwwQdJSkri22+/JT8/37E+qGrVqvj4+LjnQEVERKTMcHsA6tevH8eOHWP8+PGkp6fTsmVLlixZ4ljonJaWhtl8aaKqQ4cOfP7557z00ku8+OKLREVFsXDhQpo2bQrAwYMHWbRoEQAtW7Z0+q6VK1fSpUsXlxyXiIiIlF1uD0AAI0eOZOTIkYXWrVq1qkBZ37596du3b6HtIyIiMAyjJLsnIiIiNxm33whRRERExNUUgERERMTjKACJiIiIx1EAEhEREY+jACQiIiIeRwFIREREPI4CkIiIiHgcBSARERHxOApAIiIi4nEUgERERMTjKACJiIiIx1EAEhEREY+jACQiIiIeRwFIREREPI4CkIiIiHgcBSARERHxOApAIiIi4nEUgERERMTjKACJiIiIx1EAEhEREY+jACQiIiIeRwFIREREPI4CkIiIiHgcBSARERHxOApAIiIi4nEUgERERMTjKACJiIiIx1EAEhEREY+jACQiIiIeRwFIREREPI4CkIiIiHgcBSARERHxOApAIiIi4nEUgERERMTjKACJiIiIx1EAEhEREY+jACQiIiIeRwFIREREPI4CkIiIiHgcBSARERHxOApAIiIi4nEUgERERMTjKACJiIiIx1EAEhEREY+jACQiIiIeRwFIREREPI4CkIiIiHgcBSARERHxOApAIiIi4nEUgERERMTjKACJiIiIx1EA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hqGxLgljxowxVq1aZaSmphpr1641unbtagQHBxtHjx41DKNsjrECkIu8++67Rp06dQwfHx/j1ltvNX766Sd3d6lcWblypQEU2AYOHGgYhu1S+JdfftkICQkxfH19jbvuusvYuXOn0z5OnDhh9O/f36hYsaIRGBhoDBo0yDh79qwbjqbsKmyMAWP27NmONufPnzf+3//7f0aVKlWMgIAA489//rNx+PBhp/3s3bvX6Nmzp+Hv728EBwcbY8aMMXJzc118NGXb4MGDjbp16xo+Pj5G9erVjbvuussRfgxD41yargxAGusb169fP6NmzZqGj4+PUatWLaNfv37Gnj17HPVlcYxNhmEYpTO3JCIiIlI2aQ2QiIiIeBwFIBEREfE4CkAiIiLicRSARERExOMoAImIiIjHUQASERERj6MAJCIiIh5HAUhEpBCrVq3CZDIVeH6RiNwcFIBERETE4ygAiYiIiMdRABKRMslqtTJp0iQiIyPx9/enRYsWzJ8/H7h0emrx4sU0b94cPz8/brvtNrZt2+a0jy+//JImTZrg6+tLREQEU6ZMcarPzs7m+eefJzw8HF9fX+rXr89HH33k1CYxMZG2bdsSEBBAhw4d2Llzp6Pul19+4c4776RSpUoEBgbSpk0bNm3aVEojIiIlSQFIRMqkSZMm8Z///IeZM2fy66+/8swzz/DYY4+xevVqR5uxY8cyZcoUfv75Z6pXr84999xDbm4uYAsuDz30EA8//DBbt27llVde4eWXX2bOnDmOzw8YMID//ve/TJs2jZSUFN5//30qVqzo1I+//vWvTJkyhU2bNuHl5cXgwYMddY8++ii1a9fm559/JjExkRdeeAFvb+/SHRgRKRml9phVEZFiunDhghEQEGCsW7fOqXzIkCFG//79jZUrVxqAMXfuXEfdiRMnDH9/f2PevHmGYRjGI488YnTr1s3p82PHjjUaN25sGIZh7Ny50wCMhISEQvtg/45ly5Y5yhYvXmwAxvnz5w3DMIxKlSoZc+bMufEDFhGX0wyQiJQ5e/bsISsri27dulGxYkXH9p///IfffvvN0S4mJsbxumrVqjRs2JCUlBQAUlJS6Nixo9N+O3bsyO7du8nPzyc5ORmLxULnzp2v2ZfmzZs7XtesWROAo0ePAhAXF8fQoUPp2rUrkydPduqbiJRtCkAiUuZkZmYCsHjxYpKTkx3b9u3bHeuAbpS/v3+R2l1+SstkMgG29UkAr7zyCr/++iu9e/dmxYoVNG7cmAULFpRI/0SkdCkAiUiZ07hxY3x9fUlLS6N+/fpOW3h4uKPdTz/95Hh96tQpdu3aRXR0NADR0dGsXbvWab9r166lQYMGWCwWmjVrhtVqdVpTVBwNGjTgmWeeYenSpdx///3Mnj37hvYnIq7h5e4OiIhcqVKlSjz77LM888wzWK1WOnXqxJkzZ1i7di2BgYHUrVsXgL/97W9Uq1aNkJAQ/vrXvxIcHEyfPn0AGDNmDO3atWPixIn069eP9evXM336dN577z0AIiIiGDhwIIMHD2batGm0aNGCffv2cfToUR566KE/7OP58+cZO3YsDz74IJGRkRw4cICff/6ZBx54oNTGRURKkLsXIYmIFMZqtRpTp041GjZsaHh7exvVq1c3YmNjjdWrVzsWKH/zzTdGkyZNDB8fH+PWW281fvnlF6d9zJ8/32jcuLHh7e1t1KlTx/jHP/7hVH/+/HnjmWeeMWrWrGn4+PgY9evXNz7++GPDMC4tgj516pSj/ebNmw3ASE1NNbKzs42HH37YCA8PN3x8fIywsDBj5MiRjgXSIlK2mQzDMNycwURErsuqVau48847OXXqFEFBQe7ujoiUQ1oDJCIiIh5HAUhEREQ8jk6BiYiIiMfRDJCIiIh4HAUgERER8TgKQCIiIuJxFIBERETE4ygAiYiIiMdRABIRERGPowAkIiIiHkcBSERERDyOApCIiIh4nP8PM4mPSb1nC3YAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[ 4.913603   1.0325484 -3.3617077  5.8023977]]\n"
     ]
    }
   ],
   "source": [
    "train(data_train_normal,data_test_normal,500,net,myshow)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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jgkTJiAjIwOtWrXC5s2bdQud09LSIJcXT1SFhYVh+fLl+Oqrr/DFF1/Az88P69atQ7NmzQAAV69exYYNGwAArVq10vuuHTt2oFOnTiY5LiIiIqq6JA9AADB69GiMHj3aYN3OnTtLlfXr1w/9+vUz2N7HxweCIBize0RERFTDSH4jRCIiIiJTYwAiIiIis8MARERERGaHAYiIiIjMDgMQERERmR0GICIiIjI7DEBERERkdhiAiIiIyOwwABEREZHZYQAiIiIis8MARERERGaHAYiIiIjMDgMQERERmR0GICIiIjI7DEBERERkdhiAiIiIyOwwABEREZHZYQAiIiIis8MARERERGaHAYiIiIjMDgMQERERmR0GICIiIjI7DEBERERkdhiAiIiIyOwwABEREZHZYQAiIiIis8MARERERGaHAYiIiIjMDgMQERERmR0GICIiIjI7DEBERERkdhiAiIiIyOwwABEREZHZYQAiIiIis8MARERERGaHAYiIiIjMDgMQERERmR0GICIiIjI7DEBERERkdhiAiIiIyOwwABEREZHZYQAiIiIis8MARERERGaHAYiIiIjMDgMQERERmR0GICIiIjI7DEBERERkdhiAiIiIyOwwABEREZHZYQAiIiIis8MARERERGaHAYiIiIjMDgMQERERmR0GICIiIjI7DEBERERkdhiAiIiIyOwwABEREZHZYQAiIiIis8MARERERGaHAYiIiIjMDgMQERERmR0GICIiIjI7DEBERERkdqpEAJo3bx58fHxgZWWFkJAQHDx48LHtV61ahaZNm8LKygrNmzdHTEyMXr0gCJgwYQLq1KkDa2trhIeH4+zZs5V5CERERFSNSB6AVq5cicjISEycOBFJSUlo2bIlIiIikJWVZbD9vn37MGDAAAwdOhTJycno06cP+vTpg2PHjuna/PDDD5g9ezbmz5+PAwcOwNbWFhEREcjLyzPVYREREVEVJnkAmjFjBoYPH44hQ4YgICAA8+fPh42NDRYvXmyw/axZs9CtWzeMHz8e/v7+mDx5Mtq0aYO5c+cCEGd/Zs6cia+++gq9e/dGixYtsGzZMqSnp2PdunUmPDIiIiKqqpRSfnlBQQESExMRFRWlK5PL5QgPD0d8fLzBz8THxyMyMlKvLCIiQhduUlNTkZGRgfDwcF29o6MjQkJCEB8fjzfffLPU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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[ 4.8783493   1.1193844  -3.2103279   5.282859   -0.4424379   1.7335355\n",
      "   0.15836644  0.34292334  0.08778468  0.17280595  0.04425864  0.09925722\n",
      "  -0.15044345 -0.11771671  0.0476086  -0.05579149  0.1611532   0.1163924\n",
      "   0.19803825 -0.1293402 ]]\n"
     ]
    }
   ],
   "source": [
    "myshow1 = show([\"loss_train\", \"loss_test\"],\"epochs\",\"loss\",ylim=[0,1])\n",
    "\n",
    "net1 = nn.Sequential(nn.Linear(20,1,bias=False)) # 看一下过拟合\n",
    "train(data_train_over,data_test_over,500,net1,myshow)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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Uq+++qrmzJmj55577qzn9eVznL799lsdPnxYDz/8sPr06aOLLrooICMwtWXptFR6errS09O93n/t2rVKTk7WnXfeKalypff/+3//T//3f//nrxK9Z7PJCA2VrbyckRsAgNfatWunG264QWPHjtWzzz6rmJgYTZs2TS1bttQNN9wgSZo0aZLS09PVvn17HTlyRJ999pk6duwoSZoxY4a6d++uzp07q7S0VEuWLPHcdybNmzdXZGSkPvroI7Vq1UoRERGnvUZN69atFRYWpieeeELjxo3TN998o4ceesi8JpisTq25SUtL05/+9CctW7ZM6enpOnjwoN555x0NHjz4tI8pLS1VaWmp5+eCggJJlYucnCaNsHiOExoqlZfLeeIEozdn4O6XWf0PZvTKN/TLe8HSK6fTKcMw5HK5/HZ9Ffc0ivs8Zh/b5XLpxRdf1KRJk3TdddeprKxMffr00ZIlSxQSEiKXy6Xy8nJNmDBBP/zwg2JjYzVw4EA9/vjjcrlccjgcmj59unbt2qXIyEhdccUVeu21185aq91u15w5c/SXv/xFM2bMUJ8+ffTpp5/KMIxqz7Vp06Z66aWXdN9992nu3Lm69NJL9cgjj2jIkCGe3rv3P3Xa6eTjuL8/XW0ul0uGYcjpdCrk5DfqyLfXqs0IxOSXF2w2mxYtWqQhQ4accb+3335bo0ePVklJicrLy5WRkaF333232rye24MPPqiZM2dW2/7aa6/VauHXmVz7u98ptKREWU8/reKEBFOPDQCoLjQ0VPHx8UpKSvLqQnM4v5WVlWnPnj3av3+/yk+ZBSkuLtawYcN07NgxxcbGnvE4dSrcbN26Vf369dPkyZM1cOBA5efna+rUqbrsssv04osv1viYmkZukpKSdOjQobM2x1tOp1NZWVm6ftQo2Y4ckXPzZunnix6hOne/+vfvf9pQikr0yjf0y3vB0quSkhLt2bNHycnJioiI8Ms5DMPQ8ePHFRMT47cFw8HkXPpVUlKiXbt2KSkpqdrvs6CgQM2aNfMq3NSpaanZs2erd+/emjp1qiSpa9euio6OVp8+ffSXv/xFCTWMloSHhys8PLzadofDYf4f9M/vmHJUnsDcYwchv/wOghS98g398l5d71VFRYVsNpvsdvtZ36ZdW+4pFPd56opZs2Zp1qxZNd7Xp08fffjhh34577n0y263y2az1fi69OV1WqfCTXFxsUJPuTiee07uvBiActfGgmIAgMXGjRunm266qcb7IiMjA1xNYFkabgoLC5WTk+P5OTc3V9nZ2WrSpIlat26t6dOna+/evXrllVckSRkZGRo7dqyefvppz7TUpEmT1LNnTyUmJlr1NH7hTpWEGwCAxZo0aaImTZpYXYYlLA03GzZs0FVXXeX5OTMzU5I0cuRILViwQPn5+crLy/Pcf9ttt+n48eN68sknNWXKFDVq1EhXX331+fFWcOmXkZs6/u4DAADqMkvDTd++fc84nbRgwYJq2/74xz/qj3/8ox+rOgdMSwEAYLm6szKqLiDcAABgOcKNmZiWAgDAcoQbExksKAYAwHKEGzMxcgMA8FLfvn01adIkq8sISoQbM7HmBgBQR+zatUs2m03Z2dmmHjckJERLly419Zi+ItyYiWkpAAAsR7gxE9NSAGA9w5CKiqy51fJq+UeOHNGIESPUuHFjRUVFKT09XTt27PDcv3v3bmVkZKhx48aKjo5W586dtWzZMs9jhw8frri4OEVGRqpdu3aaP3/+Wc+ZkpIiSUpNTZXNZlPfvn09973wwgvq2LGjIiIidNFFF+mpp57y3FdWVqaJEycqISFBERERatOmjWbPni1JSk5OliT9/ve/V0hIiOfnQKtTH79w3mPkBgCsV1wsNWhg2uHskhp5u3NhoRQd7fM5brvtNu3YsUMffPCBYmNjdc8992jw4MHaunWrHA6HJkyYoLKyMq1evVrR0dHaunWrGvz8HO+//35t3bpVH374oZo1a6acnBydOHHirOdcv369evbsqU8++USdO3f2fKr6woULNWPGDD355JNKTU3Vpk2bNHbsWEVHR2vkyJGaO3euPvjgA7311ltq3bq19uzZoz179kiSvvrqKzVv3lzz5s3TkCFDLPvcMsKNmX7+nCvCDQDAW+5Qs2bNGl1++eWSKgNGUlKSFi9erN/+9rfKy8vT0KFD1aVLF0nSBRdc4Hl8Xl6eUlNT1aNHD0nyerQkLi5OktS0aVPFx8d7tj/wwAN67LHHdOONN0qqHOHZunWrnn32WY0cOVJ5eXlq166drrjiCtlsNrVp06baMRs2bKj4+HjLPmiUcGMmpqUAwHpRUZUjKCZxuVwqKChQbGzs2f+xjory+fjbtm1TaGioevXq5dnWtGlTdejQQdu2bZMk3XnnnRo/fryWL1+ufv36aejQoerataskafz48Ro6dKi+/vprDRgwQEOGDPGEJF8VFRXp+++/1+23366xY8d6tpeXl6thw4aSKkeZ+vfvrw4dOmjQoEG67rrrNGDAgFqdz19Yc2MmpqUAwHo2W+XUkBU3m80vT2nMmDHauXOnbr31Vm3evFk9evTQE088IUlKT0/X7t27NXnyZO3bt0/XXHON7r777lqdp/DnUPj8888rOzvbc/vmm2/05ZdfSpIuvfRS5ebm6qGHHtKJEyd000036Te/+Y05T9QkhBszMXIDAPBRx44dVV5ernXr1nm2HT58WNu3b1enTp0825KSkjRu3Di99957mjJlip5//nnPfXFxcRo5cqReffVVzZkzR88999xZz+teY1NRUeHZ1qJFCyUmJmrnzp1q27ZtlZt7AbIkxcbG6uabb9bzzz+vN998U++++65++uknSZLD4ahyTCswLWUmrnMDAPBRu3btdMMNN2js2LF69tlnFRMTo2nTpqlly5a64YYbJEmTJk1Senq62rdvryNHjuizzz5Tx44dJUkzZsxQ9+7d1blzZ5WWlmrJkiWe+86kefPmioyM1EcffaRWrVopIiJCDRs21MyZM3XnnXeqYcOGGjRokEpLS7VhwwYdOXJEmZmZevzxx5WQkKDU1FTZ7Xa9/fbbio+PV6NGjSRVrvlZtWqV+vXrp8jISDVu3NhvvTsdRm7MxLQUAKAW5s+fr+7du+u6665TWlqaDMPQsmXLPO82qqio0IQJE9SxY0cNGjRI7du397w9OywsTNOnT1fXrl3161//WiEhIXrjjTfOes7Q0FDNnTtXzz77rBITEz1BasyYMXrhhRc0f/58denSRVdeeaUWLFjgGbmJiYnRI488oh49euiyyy7Trl27tGzZMs96pEcffVQrV65UmzZtlJqa6o92nf25WXLWIGUwLQUA8NLKlSs93zdu3FivvPLKafd1r6+pyX333af77ruvVjWMGTNGY8aMqbZ92LBhGjZsWI2PGTt2bJXFxqfKyMjQlVde6d0CbD9h5MZMjNwAAGA5wo2ZWHMDADhPzJo1Sw0aNKjxlp6ebnV5fsW0lJncF/FjWgoAYLFx48bppptuqvG+yMjIAFcTWIQbMzEtBQA4TzRp0kRNmjSxugxLMC1lJhYUA4AlXC6X1SXABEYtP3j0VIzcmIk1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f1v5/bx5AagKAIDgd16Em3nz5ik5OVkRERHq1auX1q9ff8b958yZow4dOigyMlJJSUmaPHmySkpKAlStd7wKN5J0112VX995h4XFAACYwPJw8+abbyozM1MPPPCAvv76a3Xr1k0DBw7UwYMHa9z/tdde07Rp0/TAAw9o27ZtevHFF/Xmm2/qT3/6U4ArPzP3mpszTktJ0sUX/zJ68+c/+7kqAACCn+Xh5vHHH9fYsWM1atQoderUSc8884yioqL00ksv1bj/F198od69e2vYsGFKTk7WgAEDdMstt5x1tCfQvB65kaQZMyq/vv22tGKFH6sCACD4hVp58rKyMm3cuFHTp0/3bLPb7erXr5/Wrl1b42Muv/xyvfrqq1q/fr169uypnTt3atmyZbr11ltr3L+0tFSlpaWenwsKCiRJTqdTTqfTlOfhPs7JxwsLC5NUOXJTWloqu/0MObJDB9nHjlXI88/LGDVK5V9/XbnQOEjV1C/UjF75hn55j155j175xl/98uV4loabQ4cOqaKiQi1atKiyvUWLFvr2229rfMywYcN06NAhXXHFFTIMQ+Xl5Ro3btxpp6Vmz56tmTNnVtu+fPlyz9SRWbKysjzfn7wGaPHixYqIiDjjY0OuvlpXffCBovfs0eH0dK2fNk1GqKW/Hr87uV84M3rlG/rlPXrlPXrlG7P7ddZlHiepc/96rly5UrNmzdJTTz2lXr16KScnR3fddZceeugh3X///dX2nz59ujIzMz0/FxQUKCkpSQMGDFBsbKwpNTmdTmVlZal///5yOBySJNdJ163p06eP4uLiznocW1KSjP79Fb9hg6576y1VvPiiFB5uSo3nk5r6hZrRK9/QL+/RK+/RK9/4q1/umRdvWBpumjVrppCQEB04cKDK9gMHDig+Pr7Gx9x///269dZbNWbMGElSly5dVFRUpDvuuEP33ntvtemf8PBwhdcQEBwOh+kv0lOPGRkZqRMnTqisrMy7c/XuXfmuqRtukP2tt2Tfs0d64w2pdWtT6zxf+ON3EKzolW/ol/folffolW/M7pcvx7J0QXFYWJi6d++uFSctonW5XFqxYoXS0tJqfExxcXG1ABMSEiJJMgzDf8XWgk+Lit0GD5b+9S+pUSNp7VqpY0fpL3+Rjh71S40AAAQby98tlZmZqeeff14vv/yytm3bpvHjx6uoqEij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GwAAEFQINwAAIKgQbgAAQFAh3AAAgKBCuAEAAEGFcAMAAIJKqNUFBJphGJKkgoIC047pdDpVXFysgoICORwO044brOiX9+iVb+iX9+iV9+iVb/zVL/e/2+5/x8+k3oWb48ePS5KSkpIsrgQAAPjq+PHjatiw4Rn3sRneRKAg4nK5tG/fPsXExMhms5lyzIKCAiUlJWnPnj2KjY015ZjBjH55j175hn55j155j175xl/9MgxDx48fV2Jiouz2M6+qqXcjN3a7Xa1atfLLsWNjY3nh+4B+eY9e+YZ+eY9eeY9e+cYf/TrbiI0bC4oBAEBQIdwAAICgQrgxQXh4uB544AGFh4dbXUqdQL+8R698Q7+8R6+8R698cz70q94tKAYAAMGNkRsAABBUCDcAACCoEG4AAEBQIdwAAICgQrgxwbx585ScnKyIiAj16tVL69evt7okyz344IOy2WxVbhdddJHn/pKSEk2YMEFNmzZVgwYNNHToUB04cMDCigNr9erVysjIUGJiomw2mxYvXlzlfsMwNGPGDCUkJCgyMlL9+vXTjh07quzz008/afjw4YqNjVWjRo10++23q7CwMIDPIjDO1qvbbrut2mtt0KBBVfapL72aPXu2LrvsMsXExKh58+YaMmSItm/fXmUfb/728vLydO211yoqKkrNmzfX1KlTVV5eHsin4nfe9Kpv377VXlvjxo2rsk996JUkPf300+ratavnwnxpaWn68MMPPfefb68rws05evPNN5WZmakHHnhAX3/9tbp166aBAwfq4MGDVpdmuc6dOys/P99z+/zzzz33TZ48Wf/617/09ttva9WqVdq3b59uvPFGC6sNrKKiInXr1k3z5s2r8f5HHnlEc+fO1TPPPKN169YpOjpaAwcOVElJiWef4cOHa8uWLcrKytKSJUu0evVq3XHHHYF6CgFztl5J0qBBg6q81l5//fUq99eXXq1atUoTJkzQl19+qaysLDmdTg0YMEBFRUWefc72t1dRUaFrr71WZWVl+uKLL/Tyyy9rwYIFmjFjhhVPyW+86ZUkjR07tspr65FHHvHcV196JUmtWrXSww8/rI0bN2rDhg26+uqrdcMNN2jLli2SzsPXlYFz0rNnT2PChAmenysqKozExERj9uzZFlZlvQceeMDo1q1bjfcdPXrUcDgcxttvv+3Ztm3bNkOSsXbt2gBVeP6QZCxatMjzs8vlMuLj441HH33Us+3o0aNGeHi48frrrxuGYRhbt241JBlfffWVZ58PP/zQsNlsxt69ewNWe6Cd2ivDMIyRI0caN9xww2kfU197ZRiGcfDgQUOSsWrVKsMwvPvbW7ZsmWG32439+/d79nn66aeN2NhYo7S0NLBPIIBO7ZVhGMaVV15p3HXXXad9TH3tlVvjxo2NF1544bx8XTFycw7Kysq0ceNG9evXz7PNbrerX79+Wrt2rYWVnR927NihxMREXXDBBRo+fLjy8vIkSRs3bpTT6azSt4suukitW7emb5Jyc3O1f//+Kv1p2LChevXq5enP2rVr1ahRI/Xo0cOzT79+/WS327Vu3bqA12y1lStXqnnz5urQoYPGjx+vw4cPe+6rz706duyYJKlJkyaSvPvbW7t2rbp06aIWLVp49hk4cKAKCgo8/5cejE7tldvChQvVrFkzXXzxxZo+fbqKi4s999XXXlVUVOiNN95QUVGR0tLSzsvXVb374EwzHTp0SBUVFVV+WZLUokULffvttxZVdX7o1auXFixYoA4dOig/P18zZ85Unz599M0332j//v0KCwtTo0aNqjymRYsW2r9/vzUFn0fcPajpdeW+b//+/WrevHmV+0NDQ9WkSZN618NBgwbpxhtvVEpKir7//nv96U9/Unp6utauXauQkJB62yuXy6VJkyapd+/euvjiiyXJq7+9/fv31/jac98XjGrqlSQNGzZMbdq0UWJiov773//qnnvu0fbt2/Xee+9Jqn+92rx5s9LS0lRSUqIGDRpo0aJF6tSpk7Kzs8+71xXhBn6Rnp7u+b5r167q1auX2rRpo7feekuRkZEWVoZg87vf/c7zfZcuXdS1a1ddeOGFWrlypa655hoLK7PWhAkT9M0331RZ64aana5XJ6/L6tKlixISEnTNNdfo+++/14UXXhjoMi3XoUMHZWdn69ixY3rnnXc0cuRIrVq1yuqyasS01Dlo1qyZQkJCqq0IP3DggOLj4y2q6vzUqFEjtW/fXjk5OYqPj1dZWZmOHj1aZR/6VsndgzO9ruLj46stWi8vL9dPP/1U73t4wQUXqFmzZsrJyZFUP3s1ceJELVmyRJ999platWrl2e7N3158fHyNrz33fcHmdL2qSa9evSSpymurPvUqLCxMbdu2Vffu3TV79mx169ZN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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[3.3181152 3.1036243]]\n"
     ]
    }
   ],
   "source": [
    "myshow2 = show([\"loss_train\", \"loss_test\"],\"epochs\",\"loss\")\n",
    "net2 = nn.Sequential(nn.Linear(2,1,bias=False)) # 看一下欠拟合\n",
    "train(data_train_under,data_test_under,300,net2,myshow2)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "base",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
